package com.itheima.annotation;

import java.lang.reflect.Field;

public class StudentDemo {
    public static void main(String[] args) throws IllegalAccessException {


        //注解方式赋值

        //通过对象找到类
        Student student=new Student();
        Class<?> clazz = student.getClass();
        //获取所有变量 （私有和公有）
        Field[] fields = clazz.getDeclaredFields();

        //遍历成员变量数组
        for (Field field : fields) {
            //判断是否存在指定注解
            boolean result = field.isAnnotationPresent(MyValue.class);
            if (result){
                //存在 获取注解对象
                MyValue myValue = field.getAnnotation(MyValue.class);

                //获取注解的value
                String value = myValue.value();

                //暴力反射
                field.setAccessible(true);

                //赋值
                field.set(student,value);

            }
        }

        System.out.println(student);
    }
}
